package main;

import r.Rating;
import sioc.Forum;
import sioc.Post;
import sioc.UserAccount;

import im.CoreIdea;
import im.Status;
import foaf.User;

public class Main {
	
	public static void main(String[] args){
		
		Forum forum = new Forum();
		
		User user1 = new User("user1", "lastName1");
		User user2 = new User("user2", "lastName2");
		
		UserAccount userAccount1 = new UserAccount("userAccount1", user1);
		UserAccount userAccount2 = new UserAccount("userAccount2", user2);
		
		Post post1 = new Post("post1", userAccount1, "category1");
		Post post2 = new Post("post2", userAccount2, "category2");
		
		
		forum.addPost(post1);
		forum.addPost(post2);
	
		
		CoreIdea idea1 = new CoreIdea("idea1", "tag1");
		CoreIdea idea2 = new CoreIdea("idea2", "tag2");
		CoreIdea idea3 = new CoreIdea("idea3", "tag3");
		CoreIdea idea4 = new CoreIdea("idea4", "tag4");
		CoreIdea idea5 = new CoreIdea("idea5", "tag5");
		CoreIdea idea6 = new CoreIdea("idea6", "tag6");
		
		
		
		user1.addIdea(idea1);
		user1.addIdea(idea2);
		user1.addIdea(idea3);
		user1.addIdea(idea4);
		
		user2.addIdea(idea5);
		user2.addIdea(idea6);
		
		idea1.setHasStatus(Status.implemented);
		idea2.setHasStatus(Status.evaluated);
		idea3.setHasStatus(Status.open);
		
		idea1.setHasRating(new Rating(4.0));
		idea2.setHasRating(new Rating(6.5));
		idea3.setHasRating(new Rating(1.0));
		idea4.setHasRating(new Rating(2.5));
	 	
		idea1.addIdeaRealization("ideaRealization1");
		idea4.addIdeaRealization("ideaRealization2");
		
		
		System.out.println("Ideas in the repository");
		forum.listIdeasInTheRepository();
		System.out.println("----------------------------------------------");
		System.out.println();
		
		System.out.println("Categories that ideas have been submitted");
		forum.listCategoriesForWhichIdeasHaveBeenSubmitted();
		System.out.println("----------------------------------------------");
		System.out.println();
		
		System.out.println("Tags that have been used to classify ideas");
		forum.listTagsWhichUsedToClassifyIdeas();
		System.out.println("----------------------------------------------");
		System.out.println();
		
		System.out.println("Ideas that have been implemented");
		forum.listImplementedIdeas();
		System.out.println("----------------------------------------------");
		System.out.println();
		
		System.out.println("Ideas that have at least three ratings");
		forum.listIdeasHasAtLeastThreeRatings();
		System.out.println("----------------------------------------------");
		System.out.println();
		
		System.out.println("Ideas that have at least two or more ratings as well as at least one realization");
		forum.listIdeasHasAtLeastTwoRatingsAndOneRealization();
		System.out.println("----------------------------------------------");
		System.out.println();
		
		System.out.println("The most valuable community members who assessed at least three ideas");
		forum.listMostValuableCommunityMembers();
		System.out.println("----------------------------------------------");
		
		
		
		
	}
}
